#ifndef GLOBAL_H
#define GLOBAL_H

#include "interrupt_manager.h"
#include "HT03_driver.h"
#include "remote.h"
#include "fsm.h"

#define M_PI 3.14159265358979323846f
#define M_2PI 6.2831853071795864769f
#define M_4PI 12.566370614359172953f

#define GLOBAL_TIM htim2

#define ANGLE_F RAD(-91.1)
#define ANGLE_B RAD(-30.47)
#define L1 150
#define L2 300
#define L3 330
#define MAX_L (L1 + L2) * 0.9 // 最长腿长
#define MIN_L (L2 - L1) * 1.1 // 最短腿长
#define MAX_A M_PI            // 最大角度
#define MIN_A 0               // 最小角度

typedef struct
{
    int8_t is_foreleg[8];
    int8_t is_leftleg[8];
    float run_time;         // 运行时间 ms
    float period;           // 步态周期
    float center_height;    // 重心高度
    float step_length;      // 步长
    float footlift_height;  // 抬腿高度
    float footstamp_height; // 蹬地高度
} Global_t;

extern Global_t global;

#endif
